#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <unistd.h>
#include <stdarg.h>
#include <sqlite3.h>
#include <stdbool.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include "cJSON.h"
#include "shmem.h"
#include "pub_define.h"

#define MAX_CMD_SZ 1024 // 最大命令长度
#define main_port 8888
#define pthread_port 8887
#define user_db_path "/home/hq/c/config/user.db"
#define _PATH "/home/hq/c/config/project.json"

typedef struct fileinfo
{
    char file_name[32]; // 文件名
    char file_len;      // 文件长度
    char md5[64];       // MD5值
} fileinfo_t, *fileinfo_p;

typedef struct ipport
{
    char tcp_ip[16];  // IP地址
    int tcp_port;     // 端口号
    char mqtt_ip[16]; // MQTT IP地址
    int mqtt_port;    // MQTT端口号
    char request[16]; // 请求内容
    char version[16]; // 版本号
} ipport_t, *ipport_p;

int file_handle(char *buf, int ac_fd, sqlite3 *db);
void *pthread_handler(void *arg);
int system_cmd(const char *format, ...);
int user_sign_in(char buf[], int ac_fd, sqlite3 * db);
int user_login(char buf[], int ac_fd, sqlite3 * db);